The present invention relates generally to a network printing system and, more particularly, to a subsystem for print job submission. The invention permits the changing of an attribute set, associated with a job or one or more documents contained within the job, subsequent to compilation of the one or more documents with a print driver.
In network printing systems, client workstations ("clients") are communicatively coupled with printers by way of a network server. As shown in U.S. Pat. No. 5,467,434, a server may include, among other objects, a plurality of queues, corresponded with a plurality of printers and a server process for facilitating transmission of a job (including image data and a set of control instructions) to a selected plurality of printers. In practice, the client transmits the job to a selected one of the queues and the server processor, in turn, sees that the job is transmitted to a corresponding one of the printers associated with the queue. It is understood that each queue can correspond with one or more of the printers.
The following patents also disclose print servers or services appropriate for transmitting/processing jobs within a network: U.S. Pat. No. 5,113,494 to Menendez et al. (Issued: May 12, 1992); U.S. Pat. No. 5,179,637 to Nardozzi (Issued: Jan. 12, 1993); and U.S. Pat. No. 5,220,674 to Morgan et al. (Issued: Jun. 15, 1993).
U.S. Pat. No. 5,113,494 discloses an arrangement in which a plurality of nodes communicate with one another by way of a local area network communication line. In practice, a job can be created at one node, e.g. a scanner node, for transmission to and output at another node, e.g. a printer node.
U.S. Pat. No. 5,179,637 discloses a system for distributing print jobs received from a print image data source among a set of print engines and associated processors. One or more data files containing the information required to print one or more copies of an image are submitted to a scheduler and the scheduler interprets the job control information in the data file(s) for the image and passes the data files(s) to an image processor.
U.S. Pat. No. 5,220,674 discloses a local area print server which functions in cooperation with a plurality of clients and a plurality of printers to facilitate communication between the clients and the printers. More particularly, the local area print server both controls the servicing of printer requests by a printer and, in response to printer requests for resources needed to satisfy a printing request, either provides required resources, or obtains the resources from remote subsystems.
The system of U.S. Pat. No. 5,220,674 is suitable for use with a printing standard referred to as "DPA ISO 10175". An implementation of this standard (in conjunction with "POSIX.7 IEEE 1003.7a") can be found in various available network printing products, such as one of the "Document Centre" printing systems sold by Xerox Corporation. A description of the theory underlying this implementation is provided in further detail immediately below, the description including material excerpted from Palladium Design Document (V2.0), published in June, 1991 by the Massachusetts Institute of Technology:
A distributed printing system, developed in accordance with OSI Document Processing Architecture (DPA) ISO/IEC 10175, using the name "Palladium Print System" has been developed at MIT/Project Athena. The Palladium Print System uses the following subsystems to obtain a print service: (1) Print Clients; (2) Print Spoolers; (3) Printer Supervisors; and (4) Printers. This print system is based on a two-level client-server model in which the Printer Spooler and Print Supervisor act as servers. The Print Spooler further acts as a client to the Printer Supervisor, while the Print Client normally uses the Print Spooler as its server. In practice, remote procedure calls are used for communications between clients and servers. Each Printer has its own dedicated Printer Supervisor, the Supervisor communicating data and control information with the Printer in a manner that is suitable for the type of printer being employed.
The following will provide a brief background description of the four major subsystems comprising the Palladium Print System:
A Print Client serves as an agent that (1) accepts user commands, (2) submits requests to print services, (3) receives responses, (4) interprets and displays responses to the user, (5) and transmits the document(s) to be printed. A Print Spooler is a server that accepts operations from Print Clients using a RPC, and schedules print jobs on its Printer Supervisors. In one preferred approach, the Spooler communicates with the Printer Supervisors and uses Palladium operations with the RPC. In this preferred approach, the Print Spooler serves as a client for the Printer Supervisor.
A Printer Supervisor accepts requests from clients, namely, Printer Spoolers, to print a job on a Physical Printer. For those circumstances in which code is multi-threaded, each thread is considered a Printer Supervisor and controls its own Physical Printer. While the Printer Supervisor typically resides on the same machine as the Spooler, it may be installed on a different machine having network connectivity to the machine where the Spooler is located.
A Physical Printer is an actual piece of hardware that has its own Printer Supervisor controlling it, and the queue contains jobs waiting to be printed. Upon finishing or nearly finishing a job, a Printer Supervisor indicates to the Spooler its readiness to accept another print job. In turn, the Spooler scans those queues which feed the Physical Printer and the next job is selected with a scheduling algorithm. The job is then submitted to the Physical Printer by the Printer Supervisor using the ISO DPA Print operation.
A Logical Printer is an abstract entity that users employ to specifically indicate where their job is to be printed and/or what characteristics their job is to possess. Each Logical Printer employs default attributes when attributes have not been provided by a user or Print Client. In accordance with the attributes, a corresponding Spooler assigns a print job to one Queue based, at least in part, on a specified Logical Printer. Essentially, one or more Logical Printers feeds a Queue, while each queue feeds one or more Physical Printers as established by the system administrator of the Spooler.
The system of the present invention particularly facilitates operation within the Client/Spooler areas of the DPA Print Model. The Client is part of the print system that accepts commands, submits requests to print services, receives responses from service providers, interprets and displays responses to the user, and transmits the document(s) to be printed. In practice the Client communicates with service providers, through a predefined set of remote procedure calls (conforming with ISO 10175) and issues requests to a server. In turn, the server may authorize the request and pass it along to the Printer Supervisor, or reject the request and return a status value to the Client. A status value will also be returned to the Client by the server upon completing the request of the Client.
The design of the Client includes:
User Interface, PA1 Application Programmer's Interface, PA1 System Programmer's Interface, PA1 Infrastructure Libraries, and PA1 RPC Stubs and Run-Time Library Operating System.
The Client communicates with Service Providers by way off a RPCchannel.
In one contemplated embodiment of the Palladium Print Spooler, RPC calls are provided from the Client or Supervisor by way of a Request Handler Thread, which Thread works in conjunction with a Dispatcher Thread and/or a Job Transfer Thread, depending on the complexity of a request being handled by the Spooler. The Spooler includes a data base such that if a request requires a simple operation, the Request Thread accesses the data base and completes the operation requested. If, however, the operation required is a complex one, then a sub-thread is fired up. Further details regarding Print Spooler design can be obtained by reference to the Palladium Design Document.
It is not uncommon for a client to provide a document which includes conflicts in programming relative to a target printer to which the document is to be transmitted. For example, a client may program a document to be printed on a given stock type (i.e. assign a value to a stock attribute) and that stock type may not be available at the target printer. Accordingly, it is desirable to provide a client with as much capability, with respect to assessing what attributes are available at remote printers as possible. The following patents are devoted to systems which permit the client to assess attributes at remote printers: U.S. Pat. No. 5,129,639 to DeHority (Issued: Jul. 14, 1992); U.S. Pat. No. 5,450,571 to Rosekrans et al. (Issued: Sep. 12, 1995); and U.S. Pat. No. 5,467,434 to Hower, Jr. et al. (Issued: Nov. 14, 1995).
U.S. Pat. No. 5,129,639 is directed toward a control system in which a document is programmed at a client, with an attribute set, and then transmitted to a remote printer for processing. Pursuant to such processing, a determination is made, by reference to the programmed attribute set, as to whether a mismatch exists between such set and the attribute set made available at the remote printer. If a mismatch occurs, the client is provided with an opportunity to revise the document to overcome the mismatch.
U.S. Pat. No. 5,450,571 is directed toward an arrangement in which multiple queues, disposed at a server, are corresponded with multiple target printers. Attributes of each printer are registered with the server and a server ticket is developed to reflect the attributes of all of the multiple target printers. Moreover, each queue is associated with a mask file. Pursuant to operation, a client selects a queue and, in response to such selection, the queue's corresponding mask file is applied to the server ticket. As a result of the application, a ticket or dialog specific to the selected queue (and its associated printer(s)) is created for display at the client.
U.S. Pat. No. 5,467,434 is directed toward an arrangement in which attributes available at printers disposed remotely of a client are organized in sets of decision trees with each tree representing the attribute combinations available at one of the printers. Pursuant to programming a job with an attribute set, the client employs an attribute combination examiner to determine if that programmed attribute set is processable at one of the remote printers. By reference to the combination examiner, the client can program a job with an acceptable attribute set.
The DPA Print Model contemplates the printing of a job including a plurality of documents. This concept is similar, in principle, to a system disclosed by Xerox Corporation in its Viewpoint operating system wherein multiple documents are referenced with a single folder having a folder attribute set. The use of Viewpoint has been extended to the printing area by way of U.S. Pat. No. 5,442,732 to Matysek (Issued: Aug. 15, 1995) in which a print folder, as a whole, may be compiled, with a print driver, so that each of the documents in the print folder can be printed in accordance with the folder attribute set. Further flexibility in job programming is provided by now-allowed U.S. patent application Ser. No. 08/287,315 to Hamilton (Filed: Aug. 8, 1994) in which individual documents of the print folder can be provided with one of several stock or finishing attributes.
In accordance with common practice, when a document is revised by a client to overcome conflicts in programming, as in U.S. Pat. No. 5,129,639, the document is recompiled with a print driver prior to sending the document off for printing. Additionally, recompiling is required when an attribute is added to a document or a document is added to a job. It is understood that this recompiling, which can be time-consuming, may be avoided through use of certain DPA calls, such as a call to add a document to a job currently residing on a corresponding Print Spooler. To do this, however, it has been found that the conventional print driver(s) provided at the client would have to be rewritten for accommodating the use of such DPA call(s). Rewriting conventional print drivers can be both costly and time-consuming. Hence, it would be desirable to provide a system to the Client which permits the Client to make changes relative to a spooled document or job while avoiding the need to recompile the spooled document/job and/or rewrite conventional print drivers.
The present invention is particularly suited for use in a network environment, such as in the context of the world wide web, the internet or the like. Examples of some recent patents relating to network environments of plural remote terminal shared users of networked printers include Xerox Corporation U.S. Pat. Nos. 5,483,653, 5,243,518, 5,226,112, 5,170,340 and 5,287,194. Some patents on this subject by others include U.S. Pat. Nos. 5,113,355, 5,113,494 (originally filed Feb. 27, 1987), 5,181,162, 5,220,674, 5,247,670; 4,953,080 and 4,821,107. Further by way of background, some of the following Xerox.RTM. Corporation U.S. patents also include examples of networked systems with printers: U.S. Pat. Nos. 5,153,577; 5,113,517; 5,072,412; 5,065,347; 5,008,853; 4,947,345; 4,939,507; 4,937,036; 4,920,481; 4,914,586; 4,899,136; 4,453,128; 4,063,220; 4,099,024; 3,958,088; 3,920,895; and 3,597,071. Also noted are IBM Corp. U.S. Pat. Nos. 4,651,278 and 4,623,244, as well as Canon U.S. Pat. No. 4,760,458 and Jap. Pub. No. 59-63872 published Nov. 4, 1984. Some of these various above patents also disclose multi-functional printing systems.
Some other network system related publications include "Xerox Office Systems Technology" "Xerox 8000 Series Products: Workstations, Services, Ethernet, and Software Development" .COPYRGT.1982, 1984 by Xerox Corporation, OSD-R8203A, Ed. T. Linden and E. Harslem, with a "Table of Contents" citing its numerous prior publications sources, and an Abstract noting the April 1981 announcement of "the 8110 Star Informations System, A New Personal Computer . . . "; "Xerox System Integration Standard Printing Protocol XSIS 118404", April 1984; "Xerox Integrated Production Publishers Solutions: "Booklet No. " 610P50807" "11/85"; "Printing Protocol-Xerox System Integration Standard" .COPYRGT.1990 by Xerox Corporation, XNSS 119005 May 1990; "Xerox Network Systems Architecture", "General Information Manual", XNSG 068504 April 1985, with an extensive annotated bibliography, .COPYRGT.1985 by Xerox Corporation; "Interpress: The Source Book", Simon & Schuster, Inc., New York, N.Y., 1988, by Harrington, S. J. and Buckley, R. R.; Adobe Systems Incorporated "PostScript" Language Reference Manual", Addison-Wesley Co., 1990; "Mastering Novell" Netware.RTM.", 1990, SYBEX, Inc., Alameda, Calif., by Cheryl E. Currid and Craig A. Gillett; "Palladium Print System" .COPYRGT.MIT 1984, et sec; "Athena85" "Computing in Higher Education: The Athena Experience", E. Balkovich, et al, Communications of the ACM, 28(11) pp. 1214-1224, November, 1985; and "Apollo87 The Network Computing Architecture and System: An Environment for Developing Distributed Applications", T. H. Dineen, et al, Usenix Conference Proceedings, June 1987.
Noted regarding commercial network systems with printers and software therefor is the 1992 Xerox Corporation "Network Publisher" version of the 1990 "DocuTech.RTM." publishing system, including the "Network Server" to customer's Novell.RTM. 3.11 networks, supporting various different network protocols and "Ethernet"; and the Interpress Electronic Printing Standard, Version 3.0, Xerox System Integration Standard XNSS 048601 (Jan. 1986). Also, the much earlier Xerox Corporation "9700 Electronic printing System"; the "VP Local Laser Printing" software application package, which, together with the Xerox "4045" or other Laser Copier/Printer, the "6085" "Professional Computer System" using Xerox Corporation "ViewPoint" or "GlobalView.RTM." software and a "local printer [print service] Option" kit, comprises the "Documenter" system. The even earlier Xerox Corporation "8000" "Xerox Network Services Product Descriptions" further describe other earlier Xerox Corporation electronic document printing systems. Eastman Kodak "LionHeart.RTM." systems, first announced Sep. 13, 1990, are also noted.
Current popular commercial published "systems software" with LAN workstation connections include Novell DOS 7.0, "Windows.RTM." NT 3.1, and IBM OS/2 Version 2.1.
All of the references designated in the above Background section are incorporated herein by reference.